package com.cimcitech.printertestdemo.utils;


/**
 * 打印工具类
 *
 * @author by ken on 2019.5.6
 */
public class PrintUtils {

    public final static int VENDER_ID = 30833;//usb设备的厂商id
    public final static int PRODUCE_ID = 512;//usb设备的产品id

    /**
     * 打印并换行
     * <p>
     * 【描述】 把打印缓存区中得数据打印出来，并且按照当前行间距，把打印纸向前推进
     * 一行。
     * 【说明】 该命令把打印位置设置为行的开始位置。
     */
    public final static byte[] Print_and_wrap = {0x0a};

    /**
     * 打印并回车
     * <p>
     * 【描述】 这条命令与 LF 命令功能相同。
     * 【说明】 设置打印起始位置为行的起始点。
     */
    public final static byte[] Print_and_enter = {0x0d};

    /**
     * 打印机初始化
     * <p>
     * 【描述】 清空打印机缓存区数据，复位打印机设置到开机时默认状态。
     * 【说明】 接收缓存区的数据不被清除。
     */
    public final static byte[] Print_initialization = {0x1b, 0x40};

    /**
     * 打印并进纸
     * <p>
     * 【描述】打印出缓存区的数据并进纸：n*0.125 毫米。
     * 【说明】 1、0≤n≤255；
     * 2、打印结束后，该命令将打印的起始位置设置为行起点；
     * <p>
     * 默认n = 10
     */

    public final static byte[] Print_and_feed_paper = {0x1b, 0x4a, 0x0a};


    /**
     * 打印并走纸 n  行
     * <p>
     * 【描述】 打印输出打印缓冲区的数据，并进纸 n 行。
     * 【说明】 1、0≤n≤255；
     * 2、该命令设置打印起始位置为行起点；
     * 3、该命令不影响由 ESC 2 或 ESC 3 命令所设置的行间距。
     * 默认n = 4
     */

    public final static byte[] Print_and_take_paper = {0x1b, 0x64, 0x04};


    /**
     * 设置打印模式
     * <p>
     * 参考开发文档
     * 【说明】 1、0≤n≤255，默认为 0；
     * 2、当同时选择倍宽和倍高模式时打印出四倍大小的字符；
     * 3、不能给反白打印的字符添加下划线；
     * 4、改变字符大小下划线的粗度也随之改变；
     * 5、使用设置打印机模式指令 ESC - n 也可以添加/消除下划线，以最终指
     * 令为准。
     * 默认 n = 0
     */

    public final static byte[] Set_print_mode = {0x1b, 0x21, 0x00};

    public final static byte[] Set_print_mode1 = {0x1b, 0x21, 0x01};


    /**
     * 设置条形码宽度
     * <p>
     * 【说明】 当设置条码宽度使条码宽度超出打印范围时，条码不能被识别
     *
     */
    public final static byte[] Set_the_barcode_width = {0x1d, 0x77, 0x03};


    /**
     * 设置条形码高度
     * <p>
     * 【描述】 设置条形码高度。n 设定条形码垂直方向的点数。
     * 【说明】0≤n≤255，默认 n=162。
     */
    public final static byte[] Set_the_barcode_height = {0x1d, 0x68, (byte) 0xa2};


    /**
     * 打印条形码
     * <p>
     * 参考开发文档
     */
    public final static byte[] Print_barcode = {0x1d, 0x6b, 0x43, 0x0c, 0x39, 0x50};







}
